當某個函式無法正常進行時,停止正在執行的動作,並立即跳到某個知道如何處理問題的地方,這就是例外情況機制的作用
用 throw new Error
語法
當程式遇到問題時引發/丟出例外
時,程式不僅會停止執行
且跳出目前執行函式的作用域
,還會一路往下跳直到跳出啟動這次呼叫
為止,這就稱為堆疊展開
可以將堆疊展開
視為一種緊急機制,該機制會中斷一連串函式的執行
throw
執行時,會直接終止當下執行的函式內容catch
區塊,停止展開,並把 exception 傳給 catch,然後 從那裡開始繼續執行
root 或 global scope
,程式將終止,但這可能導致程式的崩潰(crash)為了避免這種情況,因此throw new Error
務必搭配try..catch
使用
並不需要把所有 function 都用 try..catch 包圍,try..catch 用於以下幾個場合
I/O(imput/output)
關連,可能因外部因素而產生錯誤點的區塊function fetchFromApi() {
const request = new Request("https://name_of_api", { method: "GET" });
fetch(request)
.then((response) => {
if (response.status !== 200) {
throw new Error("something went wrong on API server");
}
return response.json;
})
.then((response) => {
console.debug(response);
})
.catch((error) => {
console.error(error);
});
}
fetchFromApi();